perm filename HALF.DOC[GEO,BGB] blob sn#001304 filedate 1972-07-08 generic text, type T, neo UTF8
00100	CART PROJECT						    JULY 1972
00200	
00300	                     PDP-10 HALFWORD OPERATIONS
00400	                         Alternate Mnemonics
00500	
00600	
00700	                              Baumgart
00800	
00900	
01000	First, a tongue twister to be read aloud as rapidly as possible:
01100	
01200			LIP, LAP, DIP, DAP,
01300			LIPZ, LAPZ, DIPZ, DAPZ,
01400	
01500			SLIP, SLAP, STIP, STAP,
01600			SLIPZ, SLAPZ, STIPZ, STAPZ,
01700	
01800			ZIP, ZAP, WIP, WAP, NIP, NAP,
01900			NIM, LIM, SLIM, CAR 'n CDR.
02000	
02100		Needless to say, my mnemonics are all mentioned in the  above
02200	tongue  twister  and  are explained as follows: The letter "L" stands
02300	for "Load into accumulator from memory" and the letter "D" stands for
02400	"Deposit  from  accumulator  into memory". The letters "IP" stand for
02500	"Instruction Part" which is the left half of the memory  word.    The
02600	letters "AP" stand for "Address Part" and refers to the right half of
02700	the memory word, "IM" refers to immediate operation. The  letter  "Z"
02800	stands  for  "Zero",  "W"  stands  for  "W'ones",  and "N" stands for
02900	"Number" and refers to a signed constant.  Finally,  the  letter  "S"
03000	stands  for  "swapped"  and  like  "Z"  appears  in a natural, if not
03100	rigorously consistent fashion; the couplet "SD" for "Swapped Deposit"
03200	is  turned into "ST" for the sake of pronouciation, but then "ST" can
03300	be read a "store". CAR and CDR are  of  course  traditional,  arising
03400	from the address and decrement registers of the IBM-7090.
03500	
03600		Next, I would like to justify my halfword mnemonics, they are
03700	useful for three reasons:    i.)  the  current  mnemonics  lack  easy
03800	pronouciations  which  are  unique; ii.) the current mnemonics follow
03900	the source-destination mentality rather than  the  accumulator-memory
04000	mentality.    The  former  is  admittedly  useful  for  designing the
04100	machine and for memorizing all its operations, but is rather poor for
04200	a programmer who must wallow in the essential operations and would be
04300	better off forgetting the  redundant  and  worthless  ones.     iii.)
04400	Finally, the current mnemonics are too many.
04500	
04600		A file of the OPDEF's for these mnemonics is HALF[SYS,BGB].
     

00100	ALTERNATE HALFWORD MNEMONICS.
00200	
00300	
00400	LIP	Load from Instruction Part................HLR
00500	LAP	Load from Address Part....................HRR
00600	DIP	Deposit into Instruction Part.............HRLM
00700	DAP	Deposit into Address Part.................HRRM
00800		
00900	LIPZ	LIP with Zeroes...........................HLRZ
01000	LAPZ	LAP with Zeroes...........................HRRZ
01100	DIPZ	DIP and ZAP...............................HRLZM
01200	DAPZ	DAP and ZIP...............................HRRZM
01300		
01400	SLIP	Swapped LIP...............................HLL
01500	SLAP	Swapped LAP...............................HRL
01600	STIP	Swapped DIP...............................HLLM
01700	STAP	Swapped DAP...............................HLRM
01800		
01900	SLIPZ	Swapped LIPZ..............................HLLZ
02000	SLAPZ	Swapped LAPZ..............................HRLZ
02100	STIPZ	Swapped DIPZ..............................HLLZM
02200	STAPZ	Swapped DAPZ..............................HLRZM
02300		
02400	ZIP	Zero Instruction Part.....................HRRZS
02500	ZAP	Zero Address Part.........................HLLZS
02600	WIP	W'ones into Instruction Part..............HRROS
02700	WAP	W'ones into Address Part..................HRRZS
02800		
02900	NIP	load Number from Instruction Part.........HLRE
03000	NAP	load Number from Address Part.............HRRE
03100	NIM 	Number Immediate..........................HRREI
03200	LIM    	Load Immediate............................HRRI
03300	SLIM   	Swapped Load Immediate....................HRLI
03400		
03500	CAR	≡ LIPZ
03600	CDR	≡ LAPZ
     

00100	HALFWORD LOAD TO ACCUMULATOR OPERATIONS
00200		
00300	DEC mnemonic	importance		alternate mnemonic
00400	
00500	HLL		useful			SLIP  
00600	HLLZ		useful			SLIPZ 
00700	HLLO		arcane			-
00800	HLLE		arcane			-
00900		
01000	HLR		useful			LIP 
01100	HLRZ		essential		LIPZ ≡ CAR 
01200	HLRO		arcane			-
01300	HLRE		essential		NIP 
01400		
01500	HRL		useful			SLAP 
01600	HRLZ		useful			SLAP 
01700	HRLO		arcane			-
01800	HRLE		arcane			-
01900		
02000	HRR		useful			LAP 
02100	HRRZ		essential		LAPZ ≡ CDR 
02200	HRRO		arcane			-
02300	HRRE		useful			NAP 
02400		
02500		
02600	HALFWORD DEPOSIT INTO MEMORY OPERATIONS
02700		
02800	DEC mnemonic	importance		alternate mnemonic
02900	
03000	HLLM		useful			STIP 
03100	HLLZM		useful			STIPZ 
03200	HLLOM		arcane			-
03300	HLLEM		arcane			-
03400		
03500	HLRM		useful			STAP 
03600	HLRZM		useful			STAPZ 
03700	HLROM		arcane			-
03800	HLREM		obscure			-
03900		
04000	HRLM		essential		DIP  
04100	HRLZM		useful			DIPZ 
04200	HRLOM		arcane			-
04300	HRLEM		arcane			-
04400		
04500	HRRM		essential		DAP  
04600	HRRZM		useful			DAPZ 
04700	HRROM		arcane			-
04800	HRREM		obscure			-
     

00100	THE HALFWORD SELF MODE OPERATIONS.
00200	
00300	DEC mnemonic	importance		alternate mnemonic
00400	
00500	HLLS		redundant with HLL	-
00600	HRRS		redundant with HRR	-
00700	HRLS		obscure			-
00800	HLRS		obscure			-
00900		
01000	HLLZS		useful			ZAP  
01100	HRRZS		useful			ZIP  
01200	HRLZS		arcane			-
01300	HLRZS		arcane			-
01400		
01500	HLLOS		obscure			WAP 
01600	HRROS		obscure			WIP 
01700	HRLOS		arcane			-
01800	HLROS		arcane			-
01900		
02000	HLLES		arcane			-
02100	HRRES		arcane			-
02200	HRLES		arcane			-
02300	HLRES		arcane			-
02400		
02500		
02600	THE HALFWORD IMMEDIATE OPERATIONS.
02700		
02800	DEC     results		importance	alternate mnemonic
02900	
03000	HLLI	0,,AC		redundant with ZIP	-
03100	HRRI	AC,,E		essential		LIM
03200	HRLI	E,,AC		essential		SLIM
03300	HLRI	AC,,0		redundant with ZAP	-
03400		
03500	HLLZI	0,,0		redundant with SETZ	-
03600	HRRZI	0,,E		redundant with MOVEI	-
03700	HRLZI	E,,0		obscure			-
03800	HLRZI	0,,0		redundant with SETZ	-
03900		
04000	HLLOI	0,,-1		redundant with MOVEI -1 -
04100	HRROI	-1,,E		redundant with WIP.	-
04200	HRLOI	E,,-1		redundant with WAP.	-
04300	HLROI	-1,,0		obscure.		-
04400		
04500	HLLEI	0,,0		redundant with SETZ.	-
04600	HRREI	sign,,E		essential		NIM 
04700	HRLEI	E,,sign		arcane			-
04800	HLREI	0,,0		redundant with SETZ.	-